package com.qy.util;


import java.util.HashMap;
import java.util.Map;
import java.util.Random;


import com.cloopen.rest.sdk.CCPRestSmsSDK;

public class SMSUtil {

	public final static String sms_serverIP = "app.cloopen.com";
	public final static String sms_serverPort = "8883";
	public final static String sms_SID = "aaf98f894ecd7d6a014ed763bbd80ed6";
	public final static String sms_TOKEN = "9c66aca30cd641838126511760d1ab8c";
	public final static String sms_APPID = "8a216da85ea31fdd015ea858a87e0248";
	public final static String sms_templateId = "206932";
	
	public static Map<String,Object> sendCode(String phone)throws Exception{
		Map<String,Object> modelMap = new HashMap<String,Object>();
		HashMap<String, Object> result = null;
		//初始化SDK
		CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
		
		restAPI.init(sms_serverIP, sms_serverPort);
		
		//******************************注释*********************************************
		//*初始化主帐号和主帐号令牌,对应官网开发者主账号下的ACCOUNT SID和AUTH TOKEN     *
		//*ACOUNT SID和AUTH TOKEN在登陆官网后，在“应用-管理控制台”中查看开发者主账号获取*
		//*参数顺序：第一个参数是ACOUNT SID，第二个参数是AUTH TOKEN。                   *
		//*******************************************************************************
		restAPI.setAccount(sms_SID, sms_TOKEN);
		
		
		//******************************注释*********************************************
		//*初始化应用ID                                                                 *
		//*测试开发可使用“测试Demo”的APP ID，正式上线需要使用自己创建的应用的App ID     *
		//*应用ID的获取：登陆官网，在“应用-应用列表”，点击应用名称，看应用详情获取APP ID*
		//*******************************************************************************
		restAPI.setAppId(sms_APPID);
		
		
		//******************************注释****************************************************************
		//*调用发送模板短信的接口发送短信                                                                  *
		//*参数顺序说明：                                                                                  *
		//*第一个参数:是要发送的手机号码，可以用逗号分隔，一次最多支持100个手机号                          *
		//*第二个参数:是模板ID，在平台上创建的短信模板的ID值；测试的时候可以使用系统的默认模板，id为1。    *
		//*系统默认模板的内容为“【云通讯】您使用的是云通讯短信模板，您的验证码是{1}，请于{2}分钟内正确输入”*
		//*第三个参数是要替换的内容数组。																														       *
		//**************************************************************************************************
		
		//**************************************举例说明***********************************************************************
		//*假设您用测试Demo的APP ID，则需使用默认模板ID 1，发送手机号是13800000000，传入参数为6532和5，则调用方式为           *
		//*result = restAPI.sendTemplateSMS("13800000000","1" ,new String[]{"6532","5"});																		  *
		//*则13800000000手机号收到的短信内容是：【云通讯】您使用的是云通讯短信模板，您的验证码是6532，请于5分钟内正确输入     *
		//*********************************************************************************************************************

		Random random = new Random();
		int s = random.nextInt(999999) % (999999 - 100000 + 1) + 100000;
		
		//206932  28323
		result = restAPI.sendTemplateSMS(phone,sms_templateId ,new String[]{String.valueOf(s)});
		
		//request.getSession().setAttribute("code", String.valueOf(s));
		//this.redisUtils.set(agentBean.getAgentid().toString(), String.valueOf(s), 120);
		
		if("000000".equals(result.get("statusCode"))){
			//正常返回输出data包体信息（map）
//			@SuppressWarnings("unchecked")
//			HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
//			Set<String> keySet = data.keySet();
//			for(String key:keySet){
//				Object object = data.get(key);
//			}
			modelMap.put("code", "send_success");
			modelMap.put("smscode", String.valueOf(s));
			modelMap.put("message", "短信验证码发送成功，请在2分钟之内使用");
		}else{
			//异常返回输出错误码和错误信息
			modelMap.put("code", "send_error");
			modelMap.put("message", "短信验证码发送失败，请重新发送");
		}
		return modelMap;
	}
}
